/**
 * Created by Yu Jin Xian on 2016/12/2.
 */
function definition() {
    function sayHi(name, message) {
        alert('Hello ' + name + ', ' + message);
    }

    sayHi('Nicholas', 'How are you today?');

    function sum(num1, num2) {
        return num1 + num2;
    }

    function notExecute() {
        function sum(num1, num2) {
            return num1 + num2;
            alert('Hello world');               // 永远不会执行
        }
    }

    function diff(num1, num2) {
        if (num1 < num2) {
            return num2 - num1;
        } else {
            return num1 - num2;
        }
    }

    function quit() {
        return;
        alert('Hello ' + name + ', ' + message);  // 永远不会调用
    }
}

function parameters() {
    function sayHi() {
        alert('Hello ' + arguments[0] + ', ' + arguments[1]);
    }

    function howManyArgs() {
        alert(arguments.length);
    }

    howManyArgs('string', 45);      // 2
    howManyArgs();                  // 0
    howManyArgs(12);                // 1

    function doAdd() {
        if (arguments.length == 1) {
            alert(arguments[0] + 10);
        } else if (arguments.length == 2) {
            alert(arguments[0] + arguments[1]);
        }
    }

    doAdd(10);                      // 20
    doAdd(30, 20);                  // 50

    function or() {
        function doAdd(num1, num2) {
            if (arguments.length == 1) {
                alert(num1 + 10);
            } else if (arguments.length == 2) {
                alert(num1 + num2);
            }
        }

        doAdd(10);                      // 20
        doAdd(30, 20);                  // 50
    }

    function sync() {
        function doAdd(num1, num2) {
            arguments[1] = 10;
            alert(arguments[0] + num2);
        }
    }
}

function notOverload() {
    function addSomeNumber(num) {
        return num + 100;
    }

    function addSomeNumber(num) {
        return num + 200;
    }

    var result = addSomeNumber(100);        // 300
}